The invention relates to transmitting commands to an imaging device.
Referring to FIG. 1, for the purposes of electrically capturing an optical image 11, a typical digital camera 12 (of a digital imaging system 21) may include an array of photon sensing, pixel sensors 20. During an integration interval, each pixel sensor 20 typically measures the intensity of a portion, or pixel, of a representation of an optical image 11 that is focused (by optics of the camera 12) onto the pixel sensors 20. At the expiration of the integration interval, each sensor 20 typically indicates (via an analog voltage, for example) an intensity of light of the pixel.
The camera 12 typically processes the indications from the pixel sensors 20 to form a frame of digital data which digitally represents the captured image, and the frame may be transferred (via a serial bus 15, for example) to a computer 14 for viewing or may be stored in a flash memory of the camera 12. For video, the camera 12 may capture several optical images in succession and furnish several frames of data to the serial bus 15. Each of these frames indicates one of the captured images. The computer 14 may receive and use the frames to recreate the captured video on a display.
The computer 14 typically communicates with the camera 12 to control a task (a task of capturing a single still image or a task of capturing an image of a video, as examples) that is performed by the camera 12. In this communication, the computer 14 typically transmits commands to the camera 12, and each of the commands typically instructs the camera 12 to perform a specific function of the task, such as setting the aperture of the camera 12, for example. Because the camera 12 typically processes the commands in the order received, the computer 14 may transmit the commands for a particular task in a predefined sequence.
For example, to capture a still image, the computer 14 may initially transmit commands to set up the camera 12 to capture the image and then may transmit a command to instruct the camera 12 to capture the still image after a user presses a “Take” button on the camera 12 or invokes the capture under the control of a computer program. Lastly, the computer 14 may transmit a command that indicates how the resultant frame is to be delivered to the computer 14.
As an example, referring also to FIG. 2, a still image capture program 22 (when executed by the computer 14) may cause the computer 14 to generate a sequence 27 of commands 26 (commands 26a, 26b and 26c, as examples) to control functions (performed by the camera 12) that are associated with the task of capturing a still image. Some of the commands 26 may set up the camera 12 and may include, as examples, a command 26a to turn on the flash of the camera 12 and a command 26b to set the aperture of the camera 12. As another example, another command 26 may instruct the camera 12 to capture the image after the user of the camera 12 presses the Take button of the camera 12 or uses a program to issue the Take command.
Referring to FIG. 3, as another example, a video image capture program 24 may cause the computer 14 to generate a sequence 29 of commands 28 (commands 28a, 28b and 28c, as examples) to control functions (performed by the camera 12) that are associated with the task of capturing a video image. Some of the commands 28 may set up the camera 12 and may include, as examples, a command 28a to set the aperture of the camera 12 and a command 28b to set the exposure time of the camera 12. As another example, another command 28 may instruct the camera 12 to capture an image of the video.
Because most modern computers multitask the execution of programs, the computer 14 may interleave the execution of two programs (the video image capture program 24 and the still image capture 22 programs, as examples) that use the camera 12. However, a difficulty with this approach is that the execution of these programs may simultaneously generate command sequences and cause the computer 14 to interleave the transmission of commands that are associated with one task (to be performed by the camera 12) with the transmission of commands that are associated with another task. As a result of this interleaving, the camera 12 may not be set up properly to perform either task.
For example, the computer 14 may interleave the execution of the still image capture program 22 with the execution of the video image capture program 24. Both programs 22 and 24 may be simultaneously used by a photographer, for example, who may view video images via the video image capture program 24 to align camera equipment (adjust a tripod, for example) before mouse clicking on a visual interface “Take” button (provided by the still image capture program 22) to capture the still image. Because the computer 14 typically does not prevent both programs 22 and 24 from causing the computer 14 to generate sequences of commands that overlap in time, the transmission of the commands of the two sequences 27 and 29 may be interleaved to form an effective sequence 34 (see FIG. 4) that is received by the camera 12. However, the two tasks may each require different camera settings. For example, a task to capture a still image may have a different aperture setting than the aperture setting for the task to capture a video image. Thus, as a result of the interleaving, neither the still image capture program 22 nor the video image capture program 24 causes the computer 14 to properly set up the camera 12.
Thus, there is a continuing need for a digital imaging system that better accommodates the transmission of multiple command sequences to a digital imaging device.